<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Order extends Model
{
    use HasFactory;
    //允许批量赋值的字段
    protected $fillable = ['user_id', 'order_no', 'amount', 'address_id', 'status', 'trade_no', 'pay_type', 'pay_time'];
    /**
     * 订单所属用户
     */
    public function user()
    {
        return $this->belongsTo(User::class,'user_id','id');
    }
    /**
     * 订单拥有订单详情
     */
    public function orderDetails()
    {
        return $this->hasMany(OrderDetails::class,'order_id','id');
    }
    /**
     * 订单远程一对多关联的商品
     */
    public function goods()
    {
        return $this->hasManyThrough(
            Good::class,//最终关联的模型
            OrderDetails::class,//中间模型
            'order_id', //中间模型和本模型关联的外键
            'id', // 最终关联的模型外键
            'id', //本模型和中间模型关联的主键
            'goods_id' // 中间模型和最终模型关联的外键
        );
    }

}
